home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 8
/
The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO
/
pcboard
/
vrs501.zip
/
VRS-M13.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-10-08
|
6KB
|
345 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
String STRING011
String STRING012
;------------------------------------------------------------------------------
Goto LABEL001
End
If (0 == 0) STRING001 = "NO"
If (0 == 1) STRING001 = "YES"
EndFunc
:LABEL001
STRING002 = String(PcbNode())
If (PcbNode() == 0) STRING002 = "A"
STRING007 = String(Random(1000)) + "X" + STRING002
STRING003 = GetEnv(STRING002 + "RECNO")
STRING003 = ToInteger(STRING003)
DCloseAll
DOpen 0, PPEPath() + "USER.DBF", 0
DGo 0, STRING003
If (Trim(DGet(0, "ATT_DEF"), " ") == "S") Goto LABEL006
DnCreate 0, PPEPath() + STRING007 + ".NDX", "HANDLE"
DGo 0, STRING003
STRING005 = Trim(DGet(0, "HANDLE"), " ")
PrintLn " @X0AName @X0BTube #"
PrintLn " @X09─────────────────────────────────────@X0F"
DTop 0
:LABEL002
If (DEof(0)) Goto LABEL003
DSkip 0, 1
STRING008 = Trim(DGet(0, "HANDLE"), " ")
STRING008 = Mixed(STRING008)
STRING010 = Trim(DGet(0, "ONLINE"), " ")
If (STRING010 > 0) PrintLn "@POS:13@@X0E", 0, "@POS:32@@X0A", STRING008, "@POS:49@@X0B", STRING010
Goto LABEL002
:LABEL003
Newline
:LABEL004
InputStr "@X0AWho do you want to fight? @X0F _", STRING004, 11, 25, Mask_Ascii(), 0 + 8
Newlines 2
If (STRING004 == "") Goto LABEL014
If (STRING004 == STRING005) Then
PrintLn "You can't fight yourself!"
PrintLn
Call PPEPath() + "VRS-M19.PPE"
Goto LABEL004
Endif
DTag 0, STRING007
DSeek 0, STRING004
If (DChkStat(0) > 0) Then
PrintLn "@X0CUSER NOT FOUND@X0F"
Goto LABEL004
Endif
DGet 0, "HANDLE", STRING004
INTEGER001 = DRecNo(0)
DPut 0, "OPP_NODE", STRING003
DPut 0, "MESSAGE", "@X0EYOU HAVE BEEN SUMMONED TO SINGLE COMBAT@X0F"
DPut 0, "ATT_DEF", "S"
DTop 0
DGo 0, STRING003
PrintLn
PrintLn "@X0B", Trim(STRING004, " "), " @X03Has been informed of your summons....@X0F"
:LABEL005
DTop 0
DGo 0, STRING003
INTEGER004 = 0
PrintLn
InputStr "@X02(@X0DW@X02)@X0Aait or @X02(@X0DQ@X02)@X0Auit back @X02>_", STRING009, 11, 1, "WQ", 0 + 8
If (STRING009 == "Q") Goto LABEL014
Print " "
While (INTEGER004 <= 10) Do
Print "."
DTop 0
DGo 0, STRING003
DGet 0, "ATT_DEF", STRING012
Delay (1 * 182) / 10
If (STRING012 == "A") Goto LABEL007
If (DGet(0, "ATT_DEF") == "N") Goto LABEL010
Inc INTEGER004
EndWhile
Goto LABEL005
:LABEL006
If (DGet(0, "ATT_DEF") == "S") Then
INTEGER001 = Trim(DGet(0, "OPP_NODE"), " ")
DPut 0, "ATT_DEF", "D"
DTop 0
DGo 0, INTEGER001
DPut 0, "ATT_DEF", "A"
DTop 0
DGo 0, STRING003
Goto LABEL007
Endif
:LABEL007
DCloseAll
DOpen 0, PPEPath() + "USER.DBF", 0
DTop 0
DGo 0, STRING003
If (DGet(0, "ATT_DEF") == "X") Goto LABEL014
If (DGet(0, "HITPTS_L") < 1) Goto LABEL013
Cls
PrintLn
PrintLn "LIFE LEFT: ", DGet(0, "HITPTS_L")
PrintLn "RESULTS: ", DGet(0, "MESSAGE")
PrintLn "@X02(@X0DA@X02)@X0Attack @X02(@X0DR@X02)@X0AUN AWAY@X0F "
InputStr "@X02(@X0DA@X02)@X0Attack or @X02(@X0DR@X02)@X0Aun away @X02>", STRING011, 11, 1, "AR", 0 + 8
Select Case (STRING011)
Case "A"
Goto LABEL008
Case "R"
Gosub LABEL012
End Select
:LABEL008
DTop 0
DGo 0, STRING003
If (DGet(0, "HITPTS_L") <= 0) Goto LABEL013
If (DGet(0, "ATT_DEF") == "A") Then
INTEGER002 = Random(100) - DGet(0, "LEVEL")
If (INTEGER002 <= 50) Then
INTEGER002 = Random(10)
STRING006 = "@X0CYou were hit for@X0B " + INTEGER002 + "@X0C points!@X0F"
DPut 0, "ATT_DEF", "D"
DTop 0
DGo 0, INTEGER001
DPut 0, "MESSAGE", STRING006
DPut 0, "HITPTS_L", DGet(0, "HITPTS_L") - INTEGER002
If (DGet(0, "HITPTS_L") < 1) Goto LABEL011
DPut 0, "ATT_DEF", "A"
Goto LABEL009
Endif
If (INTEGER002 > 50) Then
STRING006 = "@X0B" + STRING004 + " @X0EMissed you!@X0F"
DPut 0, "ATT_DEF", "D"
DTop 0
DGo 0, INTEGER001
DPut 0, "MESSAGE", STRING006
DPut 0, "ATT_DEF", "A"
Endif
:LABEL009
Goto LABEL007
Endif
Goto LABEL007
:LABEL010
Cls
Newlines 5
PrintLn "@X0BYour challenge was declined@X0F"
Newlines 5
Call PPEPath() + "VRS-M19.PPE"
Goto LABEL014
:LABEL011
DTop 0
DGo 0, STRING003
PrintLn
PrintLn "@X0CYou have killed your opponent!@X0F"
DTop 0
DGo 0, INTEGER001
DGet 0, "EXP", INTEGER003
INTEGER003 = INTEGER003 / 10
PrintLn "@X0AYou gained @X0E:@X0C ", INTEGER003, "@X0A experience points!@X0F"
DTop 0
DGo 0, STRING003
DPut 0, "EXP", DGet(0, "EXP") + INTEGER003
DTop 0
DGo 0, INTEGER001
DGet 0, "CASH", INTEGER003
PrintLn "@X0AYou gained @X0E:@X0C ", INTEGER003, "@X0A cash!@X0F"
DPut 0, "ATT_DEF", "X"
DPut 0, "P_FTS_L", DGet(0, "P_FTS_L") - 1
DTop 0
DGo 0, STRING003
DPut 0, "CASH", DGet(0, "CASH") + INTEGER003
DPut 0, "ATT_DEF", "X"
PrintLn "@X09And we all go up in rank....@X0F"
PrintLn
Call PPEPath() + "VRS-M19.PPE"
Goto LABEL014
:LABEL012
INTEGER003 = Random(100)
If (INTEGER003 < 50) Then
DTop 0
DGo 0, INTEGER001
DPut 0, "MESSAGE", "@X0EI AVOIDED YOU! HAH!@X0F"
Else
If (INTEGER003 >= 51) Return
:LABEL013
DTop 0
DGo 0, STRING003
DPut 0, "VITALITY", "N"
DPut 0, "HITPTS_L", 0
DPut 0, "CASH", 0
DPut 0, "WEAPN1", 0
DPut 0, "WEAPN2", 0
DPut 0, "S_W_NUMBER", 0
DPut 0, "WEAPT1", "NONE"
DPut 0, "WEAPT2", "NONE"
DPut 0, "S_W_NAME", "NONE"
DPut 0, "WEAPA1", 0
DPut 0, "WEAPA2", 0
DPut 0, "S_W_AMMO", 0
DPut 0, "WEAPD1", 0
DPut 0, "WEAPD2", 0
DPut 0, "S_W_DAMAGE", 0
DPut 0, "ARMOR_D", 0
DPut 0, "ARMOR_N", "NONE"
DPut 0, "ATT_DEF", "X"
DTop 0
DGo 0, INTEGER001
DPut 0, "ATT_DEF", "X"
DTop 0
DGo 0, STRING003
PrintLn
PrintLn "@X8CYou have died@X0F"
PrintLn "@X0EYou lost all of the cash you were carrying...."
PrintLn "@X0BAll your weapons...."
PrintLn "@X0AAnd your armor...."
PrintLn
PrintLn "@X0CPerhaps tommrrow you'll fare better...."
PrintLn
Call PPEPath() + "VRS-M19.PPE"
Endif
:LABEL014
DTop 0
DGo 0, STRING003
DPut 0, "MESSAGE", " "
DPut 0, "ATT_DEF", " "
DPut 0, "OPP_NODE", 0
DCloseAll
Delete PPEPath() + STRING007 + ".NDX"
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 2 Cls
; 35 Goto
; 20 Let
; 2 Print
; 28 PrintLn
; 25 If
; 1 Delete
; 3 InputStr
; 1 Gosub
; 1 Return
; 1 Delay
; 1 Inc
; 1 Newline
; 3 Newlines
; 4 Call
; 1 EndFunc
; 2 DOpen
; 3 DCloseAll
; 1 DnCreate
; 20 DTop
; 21 DGo
; 1 DSkip
; 1 DTag
; 1 DSeek
; 4 DGet
; 40 DPut
;
;
; ■ Functions used :
;
; 1 *
; 2 /
; 22 +
; 3 -
; 14 ==
; 3 <
; 3 <=
; 3 >
; 1 >=
; 11 !
; 6 Trim()
; 4 Random()
; 2 String()
; 1 Mask_Ascii()
; 8 PPEPath()
; 2 PcbNode()
; 1 GetEnv()
; 1 ToInteger()
; 1 Mixed()
; 1 DEof()
; 1 DRecNo()
; 19 DGet()
; 1 DChkStat()
;
;------------------------------------------------------------------------------
;
; Analysis flags : C
;
; C - Call child PPE ■ 3
; This is usually normal, but may be a tricky way to launch some
; sysop-only commands.
; ■ Search for : CALL
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 1 While/EndWhile
; 7 If/Then or If/Then/Else
; 1 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------